﻿namespace POP.Mime.Traverse
{
	public interface IQuestionAnswerMessageTraverser<TQuestion, TAnswer>
	{
		// Call this when you want to apply this traverser on a <see cref="Message"/>.
		TAnswer VisitMessage(Message message, TQuestion question);

		// Call this when you want to apply this traverser on a <see cref="MessagePart"/>.
		TAnswer VisitMessagePart(MessagePart messagePart, TQuestion question);
	}
}